/*
 * @Author: your name
 * @Date: 2022-02-04 12:35:42
 * @LastEditTime: 2022-02-10 22:59:46
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \ts\02函数传参数.ts
 */

// 这样是错的
// function fun1(obj:object): string {
//     return obj.name // 不能写没有定义参数的name
// }

// 对象里面参数要写，返回值类型要写，不写是any，编译器也会进行类型推断
function fun (a:string, b:number, c:{name:string},d:string[]):string {
    return a + b + c.name + d[0]
} 
fun ('12',1,{name:'df'},['s'])

// 解构
function fun2({one, two} : {one:number, two:string}):string {
    return one + two
}

// 没有返回值,
function fun3() :void {
    console.log('viod代表该函数不需要返回值')
}


// 一个函数是永远也执行不完的，就可以定义返回值为never
function fun4() :never {
  throw new Error() 
  console.log('执行不到这里了')
}
// 死循环也可以定义成never
function fun5() :never {
    while(true) {
        console.log(1)
    }

}